package com.itheima.health.util;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;

/**
 * 短信发送工具类
 *   阿里云 官方短信测试
 *      1:阿里云 添加自己的测试账号.
 *      2:发送短信代码中的 id 和密码 写自己的.
 *      3:充钱....
 *
 *      1:不用自己的 找老师加测试账号
 *      2: 我充钱
 *
 *   阿里云第三方
 *     1:去第三方申请,老师拷贝过来的API 是国阳云
 *        只能免费20条,  模板是人家模板...
 *        还有200条的.
 *     2: 只需要改变 appcode
 *     3: 如果想用自己的签名和模板,要去国阳云 网站上去申请..略微麻烦一点...
 *        
 */
public class SMSUtils {

    private static final String SIGN = "阿里云短信测试";//签名  公司申请的签名
    private static final String TEMPLATE_CODE = "SMS_154950909";// 模板 公司申请的模板

    public static void main(String[] args) {
        sendMessage(SIGN,
                TEMPLATE_CODE,
                "18735387130", //手机号
                "8848");//验证码
    }

    /**
     * 发送短信
     *
     * @param signName     签名
     * @param templateCode 模板
     * @param phoneNumbers 手机号
     * @param param        参数
     *
     *
     */
    public static void sendMessage(String signName, String templateCode, String phoneNumbers, String param) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI5t7SNpkxWMy7t8cpEgJy", "0eqsjdw3wqhNaapS7BJvk1WbO0SyeD");
        IAcsClient client = new DefaultAcsClient(profile);

        SendSmsRequest request = new SendSmsRequest();
        request.setSysRegionId("cn-hangzhou");
        request.setPhoneNumbers(phoneNumbers);
        request.setSignName(signName);
        request.setTemplateCode(templateCode);
        request.setTemplateParam("{\"code\":\"" + param + "\"}");
        try {
            SendSmsResponse response = client.getAcsResponse(request);
            System.out.println("短信发送成功");
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

}
